package br.edu.ufcg.sri;

import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

/**
* Classe ExemploAcao. Especializa a classe Frame.
*/
public class ProjectGui extends Frame {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
    * Campo de texto.
    */
    JTextField textField;
    JTable table;
    JScrollPane scroto;

    /**
    * Botão
    */
    JButton button;

    /**
     * Variável auxiliar.
     */
    int aux = 0;
    
    String[] array = { "caca", "lero", "leriado", "chubiruba", "dada",
    		"a", "ab", "abc", "coisa", "coisado", "coisando", "dadinho",
    		"zePequeno", "caquinha", "baralho", "como", "birigui", "birigui buster",
    		"curioh", "cacilda", "dia", "do", "danado", "putz", "ainda",
    		"faltou", "coisa", "bilu", "biru", "teteia", "sri", "teste"};

    /**
    * Construtor
    */
    public ProjectGui(String param) {

        setTitle(param); //adiciona um título ao frame
        textField = new JTextField("Projeto Opulento");
        
		System.out.println(Arrays.toString(array));
		Object[][] data = new Object[array.length][1];
		int i = 0;
		for(Object o: array){
			data[i][0] = o;
			i++;
		}
		String[] colum = { "" }; 
        
        table = new JTable(data,colum);
        table.setShowGrid(false);
        scroto = new JScrollPane(table);
        table.setFillsViewportHeight(true);
        button = new JButton("Search");
        add(textField, 0); //adiciona o textField ao frame
        add(button, "East"); //adiciona o button ao frame
        add(scroto, "South");
        List<String> wordis = new ArrayList<String>();
        for(String word : array){
        	wordis.add(word);
        }
        
        EscutadorDeChave keyListener = new EscutadorDeChave(wordis,table);
        EscutadorDeAcao actionListener = new EscutadorDeAcao(keyListener);
        textField.addKeyListener(keyListener);
        textField.addActionListener(actionListener);
        //Instancia um novo Listener e adiciona ele ao botão
        button.addActionListener(new ActionListener() {

            //ação que nosso botão vai provocar ao ser clicado                         
            public void actionPerformed(ActionEvent e) {
                //textField2.setText(Integer.toString(aux + 1));
                aux++; // (acrescenta 1 em a)
            }
        });
    }
    
    /**
     * Método "main"para testar o  exemplo.
     *
     * @param args - nome da janela prinicipal
     */
    public static void main(String args[]) {
        ProjectGui e = new ProjectGui("Título");
        e.pack();

        /*       
        Note que pack() é método da classe Frame,
        só é possível usar por causa do
        "extends Frame".
        */

        e.setVisible(true);//Torna o frame visíel.
    }
}
